]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
appDisplay: Change pages with page down/up keys
authorCarlos Soriano <carlos.soriano89@gmail.com>
Thu, 12 Sep 2013 15:20:07 +0000 (17:20 +0200)
committerCarlos Soriano <carlos.soriano89@gmail.com>
Fri, 13 Sep 2013 17:16:11 +0000 (19:16 +0200)
Add key bindings to app picker to allow change pages using
the page up/down keys.

https://bugzilla.gnome.org/show_bug.cgi?id=707979

js/ui/appDisplay.js

index e3545b0991df52d8d1ba21eda45320f96d283501..262b46a9396a09592d73ca3033ab6d47851d4c01 100644 (file)
@@ -335,6 +335,19 @@ const AllView = new Lang.Class({
             function() {
                 this._displayingPopup = false;
             }));
+
+        this.actor.connect('notify::mapped', Lang.bind(this,
+            function() {
+                if (this.actor.mapped) {
+                    this._keyPressEventId =
+                        global.stage.connect('key-press-event',
+                                             Lang.bind(this, this._onKeyPressEvent));
+                } else {
+                    if (this._keyPressEventId)
+                        global.stage.disconnect(this._keyPressEventId);
+                    this._keyPressEventId = 0;
+                }
+            }));
     },
 
     getCurrentPageY: function() {
@@ -441,6 +454,21 @@ const AllView = new Lang.Class({
         this._panning = false;
     },
 
+    _onKeyPressEvent: function(actor, event) {
+        if (this._displayingPopup)
+            return true;
+
+        if (event.get_key_symbol() == Clutter.Page_Up) {
+            this.goToPage(this._currentPage - 1);
+            return true;
+        } else if (event.get_key_symbol() == Clutter.Page_Down) {
+            this.goToPage(this._currentPage + 1);
+            return true;
+        }
+
+        return false;
+    },
+
     _getItemId: function(item) {
         if (item instanceof Shell.App)
             return item.get_id();